import numeral from 'numeral'
import dayjs from 'dayjs'
import _ from 'lodash'

/**
 * 金额
 * @param {*} h
 * @param {*} value
 */
export function priceCell (h, value) {
  if (_.isNil(value)) {
    return ''
  }
  return h('span', { class: 'ivu-table-right' }, `${numeral(value).format('0,0.00')}`)
}

/**
 * 年月日
 * @param {*} h
 * @param {*} value
 */
export function dayCell (h, value) {
  if (_.isNil(value)) {
    return ''
  }
  return h('span', dayjs(value).format('YYYY-MM-DD'))
}

/**
 * 年月日时分秒
 * @param {*} h
 * @param {*} value
 */
export function dayTimeCell (h, value) {
  if (_.isNil(value)) {
    return ''
  }
  return h('span', dayjs(value).format('YYYY-MM-DD HH:mm:ss'))
}

/**
 * 百分比
 * @param {*} h
 * @param {*} value
 */
export function percentCell (h, value) {
  if (_.isNil(value)) {
    return ''
  }
  return h('span', { class: 'ivu-table-right' }, `${value * 100}%`)
}

/**
 * 靠右
 * @param {*} h
 * @param {*} value
 */
export function rightCell (h, value) {
  if (_.isNil(value)) {
    return ''
  }
  return h('span', { class: 'ivu-table-right' }, value)
}

/**
 * 布尔值
 * @param {*} h
 * @param {*} value
 */
export const booleanCell = (h, value) => {
  return h('span', { style: { color: value === true ? 'green' : 'red' } }, value === true ? '是' : '否')
}

export const normalLink = (h, fn, text) => {
  return h(
    'a',
    {
      class: 'ivu-table-link',
      on: {
        click: () => {
          fn()
        }
      }
    },
    text
  )
}

export const deleteLink = (h, fn) => {
  return h(
    'Poptip',
    {
      class: 'ivu-table-link',
      props: {
        confirm: true,
        transfer: true,
        title: '确定要删除吗?'
      },
      on: {
        'on-ok': () => {
          fn()
        },
        'on-cancel': () => {
        }
      }
    },
    [
      h(
        'a',
        {
          class: 'ivu-table-link'
        },
        '删除'
      )
    ]
  )
}

/**
 * 流程单号
 * @param {*} h
 * @param {*} params
 * @param {*} fn
 */
export const workflowNumberCell = (h, params, fn) => {
  return h('p', {}, [
    h(
      'a',
      {
        on: {
          click: () => {
            fn()
          }
        }
      },
      [
        params.row.entityNumber,
        '(',
        h(
          'strong',
          {
            style: {
              color: 'green'
            }
          },
          params.row.entityStatusDsp
        ),
        ')'
      ]
    ),
    h('br'),
    '提单人 : ' + params.row.createByDsp,
    h('br'),
    '提单时间 : ' + params.row.createTime
  ])
}
